Skip to content

Repoint test-fixtures submodule and add EPYC integration test scaffolding#86

Open
vringar wants to merge 1 commit intoPSPReverse:masterfrom
vringar:repoint-test-fixtures-submodule
Open

Repoint test-fixtures submodule and add EPYC integration test scaffolding#86
vringar wants to merge 1 commit intoPSPReverse:masterfrom
vringar:repoint-test-fixtures-submodule

Conversation

@vringar
Copy link
Copy Markdown

@vringar vringar commented May 7, 2026

Summary

Two pieces of infrastructure cleanup that were originally bundled with #85 but are independently useful:

  1. Repoint the dead test-fixtures submodule. tests/integration/fixtures currently points at git@github.com:cwerling/PSPTool-fixtures.git, which returns "Repository not found" — almost certainly collateral from the LFS-quota recreations the commit log mentions. Anyone running git submodule update --init on a fresh checkout today fails immediately. Switching to git@github.com:PSPReverse/Test-PSPTool.git, which is the org's active firmware corpus (54 ROMs, AM4 / X399 / Naples era), restores submodule init.
  2. Add scaffolding for an EPYC integration test. Layout shifts from fixtures/roms/ to fixtures/test_files/ to match the Test-PSPTool repo's flat layout, and TestZenGenerationBackfill is added to tests/integration/test_rom_files.py. It maps the 5 EPYC fixture filenames to expected Zen generations and asserts via _find_fixture + subTest. The class skips cleanly today (No EPYC fixtures present under tests/integration/fixtures/test_files) — it starts asserting only after Test-PSPTool gains the EPYC ROMs and the gitlink in this PR is bumped to a SHA that contains them.

Why this is its own PR

This work is a strict superset of "the submodule URL is dead." The integration-test class is dormant scaffolding until Test-PSPTool catches up, and bundling it with the back-fill in #85 muddies the review (one PR mixing fix-the-bug with fix-the-CI-corpus-pointer). Keeping them separate means:

  • Detect zen_generation for single-generation EPYC BIOSes #85 reviewers focus on the back-fill on its merits — fully covered by unit tests, no submodule dependency.
  • This PR reviewers focus on whether the move to PSPReverse/Test-PSPTool is the right destination, and whether the dormant test class shape is acceptable.
  • Either can be merged before the other, in any order.

What's in the PR

Single commit:

  • .gitmodules — URL change to git@github.com:PSPReverse/Test-PSPTool.git
  • tests/integration/fixtures — gitlink moved to current Test-PSPTool master HEAD bca9c0e. Real commit, exists, has the existing 54-ROM corpus.
  • tests/integration/test_rom_files.pyrom_fixtures_path updated to fixtures/test_files; new TestZenGenerationBackfill class.

Test plan

  • Existing integration tests (TestRomFiles.*): runs against the new submodule pointer (Test-PSPTool master, 54 ROMs, AM4 / X399 / Naples era) — all pass, AM4 combo control X470D4U2-2T 3.40 keeps existing combo_dir output unchanged.
  • TestZenGenerationBackfill: skips with the documented "No EPYC fixtures present" message, exactly as expected on this gitlink.

Follow-up

A companion change in PSPReverse/Test-PSPTool adds 5 EPYC fixture files (Rome / Milan / Genoa / Siena / Turin) under test_files/ and refreshes test_psptool.py for the current PSPTool API (it imports HeaderEntry and walks psp.blob.fets, both gone). Once that lands, a one-line gitlink bump in this repo flips TestZenGenerationBackfill from skip to assert.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

Metrics

psptool command line interface metrics

Metric Value
Files Processed 68
Stdout Lines 14,965
Stderr Lines 156
Total Lines 15,121
Error Ratio 1.03%

PSPTool python library metrics

Status Count Percentage
✓ Successful 68 100.0%
✗ Failed 0 0.0%
Total 68 100%

All files parsed successfully!

The previous submodule URL git@github.com:cwerling/PSPTool-fixtures.git
returns 'Repository not found' (likely casualty of the LFS-quota
recreations the commit log mentions). PSPReverse/Test-PSPTool is
the active firmware corpus for the org (54+ ROMs spanning AM4 /
X399 / X470 / Threadripper / Naples) and the natural home for the
new EPYC fixtures.

Submodule path stays at tests/integration/fixtures; layout changes
from fixtures/roms/ to fixtures/test_files/ to match the corpus
repo's flat layout. The TestZenGenerationBackfill class' filename
keys are updated to the new Vendor_Model_BIOS.ext naming
convention.

Pinned at Test-PSPTool master HEAD bca9c0e for now; bump once the
companion PR (Add EPYC test ROMs + split test_psptool.py) lands.
Until then TestZenGenerationBackfill skips with the documented
no-fixtures-present message; integration smoke tests run as
before against the existing 54-file corpus.
@vringar vringar force-pushed the repoint-test-fixtures-submodule branch from d6e5506 to 53d7fb2 Compare May 7, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant